﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыОперацийВыдачаДенежныхДокументов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"69749e72-bd07-4f5e-9b92-8a193b253976\", \"Представление\":\"ВыдачаПодотчетномуЛицу\"}")]
		ВыдачаПодотчетномуЛицу = 0,//Выдача подотчетному лицу
		[EnumMember(Value = "{\"Ссылка\":\"1e6a0ac4-b96e-4714-8077-75de7423c194\", \"Представление\":\"ВозвратПоставщику\"}")]
		ВозвратПоставщику = 1,//Возврат поставщику
		[EnumMember(Value = "{\"Ссылка\":\"db03bad3-0dbd-4697-ad84-4d24cd96b095\", \"Представление\":\"ПрочаяВыдача\"}")]
		ПрочаяВыдача = 2,//Прочая выдача
	}
	public static partial class ВидыОперацийВыдачаДенежныхДокументов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ВыдачаПодотчетномуЛицу = new Guid("198a929b-253b-7639-4f5e-bd0769749e72");//Выдача подотчетному лицу
		public static readonly Guid ВозвратПоставщику = new Guid("de757780-2374-94c1-4714-b96e1e6a0ac4");//Возврат поставщику
		public static readonly Guid ПрочаяВыдача = new Guid("244d84ad-96cd-95b0-4697-0dbddb03bad3");//Прочая выдача
		public static ВидыОперацийВыдачаДенежныхДокументов Получить(this ВидыОперацийВыдачаДенежныхДокументов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОперацийВыдачаДенежныхДокументов Получить(this ВидыОперацийВыдачаДенежныхДокументов Значение, Guid Ссылка)
		{
			if(Ссылка == ВыдачаПодотчетномуЛицу)
			{
				return ВидыОперацийВыдачаДенежныхДокументов.ВыдачаПодотчетномуЛицу;
			}
			else if(Ссылка == ВозвратПоставщику)
			{
				return ВидыОперацийВыдачаДенежныхДокументов.ВозвратПоставщику;
			}
			else if(Ссылка == ПрочаяВыдача)
			{
				return ВидыОперацийВыдачаДенежныхДокументов.ПрочаяВыдача;
			}
			return ВидыОперацийВыдачаДенежныхДокументов.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОперацийВыдачаДенежныхДокументов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОперацийВыдачаДенежныхДокументов Значение)
		{
			switch (Значение)
			{
				case ВидыОперацийВыдачаДенежныхДокументов.ВыдачаПодотчетномуЛицу: return ВыдачаПодотчетномуЛицу;
				case ВидыОперацийВыдачаДенежныхДокументов.ВозвратПоставщику: return ВозвратПоставщику;
				case ВидыОперацийВыдачаДенежныхДокументов.ПрочаяВыдача: return ПрочаяВыдача;
			}
			return Guid.Empty;
		}
	}
}